package com.atguigu.base;

import com.github.pagehelper.Page;

import java.io.Serializable;
import java.util.Map;

/**
 * @author wanglei
 */
public interface BaseDao<T> {
    /**
     * 新增
     * @param t 实体
     * @return 结果
     */
    Integer insert(T t);

    /**
     * 删除
     * @param id id 标识ID 可以是自增长ID，也可以是唯一标识。
     */
    void delete(Serializable id);

    /**
     * 更新一个实体
     * @param t 实体
     * @return 结果
     */
    Integer update(T t);

    /**
     * 通过一个标识ID 获取一个唯一实体
     * @param id  唯一标识
     * @return 实体信息
     */
    T getById(Serializable id);

    /**
     * 分页查询
     * @param filters 查询条件
     * @return 分页列表
     */
    Page<T> findPage(Map<String, Object> filters);
}
